Scala入门(一):函数定义

最近在做一个spark项目,顺便分享一下我的scala入门过程。这一系列文章假定读者有一定的java或者其他面向对象编程语言基础。本文主要介绍scala的函数定义。

按惯例,先来一段HelloWorld

1
2
3
4
5
6
7
8
9
object TestScala1 {  
def main(args: Array[String]): Unit = {
val s = "Hello World!";
show(s);
}
def show(s: String): Unit = {
println(s)
}
}

函数的定义需要关键字def,组成部分有函数名(main),参数名称(args), 参数类型(Array[String]),返回类型(Unit),大括号内是函数体。

函数一般都会有返回内容,Unit为空返回值。Unit可以省略。实际上在接触scala时间长了之后你会发现,Scala是一门“能省则省”的语言。比如说每行语句末尾的分号,其实是可写可不写,或者准确的说,Scala是不推荐写分号的,因为没有意义,只是凭空增加了多敲一个键的负担(仁者见仁智者见智)。

和Java一样,main函数是程序的主入口,但不同的是,Java的main函数是一个类中的静态函数,但Scala的类中并没有静态函数,所以引入object来持有静态函数。所以请注意我们定义的TestScala1是一个object而不是class。

在main函数中我们首先声明一个变量s,val代表常量,var代表变量。由于Scala实现了类型推导,因此不需要声明对象的类型。

然后把s传递给函数show,函数的调用与Java类似,但如果函数没有参数的话,调用时可以省略括号(能省则省。。)